SRC = mvmult.c

CFLAGS = -Wall -D DEBUG=0 -std=gnu99
CFLAGS_SP = $(CFLAGS) -D MY_DATA_TYPE="float"
CFLAGS_DP = $(CFLAGS) -D MY_DATA_TYPE="double"
CFLAGS_EP = $(CFLAGS) -D MY_DATA_TYPE="long double"

all: $(SRC)	
	for optlevel in 0 1 2 3 ; do \
		gcc $(CFLAGS_SP) -O$$optlevel $(SRC) -o ./bin/mvmult_sp_o$$optlevel ; \
		gcc $(CFLAGS_DP) -O$$optlevel $(SRC) -o ./bin/mvmult_dp_o$$optlevel ; \
		gcc $(CFLAGS_EP) -O$$optlevel $(SRC) -o ./bin/mvmult_ep_o$$optlevel ; \
	done
		gcc $(CFLAGS_SP) -Ofast $(SRC) -o ./bin/mvmult_sp_ofast ; \
		gcc $(CFLAGS_DP) -Ofast $(SRC) -o ./bin/mvmult_dp_ofast ; \
		gcc $(CFLAGS_EP) -Ofast $(SRC) -o ./bin/mvmult_ep_ofast ; \

clean:
	rm ./bin/*
